跳到主要内容

基本按键说明

编辑模式

操作说明
i 与 Ii 为光标所在的位置开始编辑,I 为当前行的首字符处开始编辑(i 和 I 是 Insert 之意)
a 与 Aa 为光标所在的下一个字符处开始编辑,A 为当前后的最后一个字符处开始编辑(a 和 A 有 Append 之意)
o 和 Oo 在当前行之后新建一行,O在当前行之前新建一行(Open New Line)

光标移动

操作说明
0数字0,将光标移动到当前行行首(行首非制表符)
$将光标移动到当前行行尾(行尾非制表符)
H将光标移动到当前屏幕第一行行首
M将光标移动到当前屏幕中间那一行行首
L将光标移动到当前屏幕最后一行行首
G将光标移动着文件最后一行
nGn 为数字,将光标移动到文件的指定行。如 20G 就是移动到第20行的意思。
gg将光标移动到文件的第一行,相当于 1G
n<Enter>将光标向下移动 n 行(输入数字后点击回车键)

删除粘贴与复制

操作说明
x 与 X在一行当中,x 为从光标开始向后删除,X 为从光标开始向前删除
nx 与 nXn 为数字,nx 为从光标开始向后删除 x 个字符,nX 为先前删除 n 个字符
dd剪切光标所在的那一整行
nddn 为数字,剪切光标所在行到向下 n 行。如 10dd 表示从光标开始所在的行向下剪切 10 行。
d1G剪切光标所在的行一直到文件第一行
dG剪切光标所在的行一直到文件最后一行
d0在一行中,剪切该行的第一个字符一直到光标所在的字符
d$在一行中,从光标所在的字符一直剪切到该行的最后一个字符
yy复制当前行(光标所在行)
nyyn 为数字,从当前行向下复制 n 行
y1G复制文件首行到当前行的所有数据
yG复制当前行一直到文件最后一行的所有数据
y0在一行中,从该行的第一个字符开始复制,一直到光标所在字符
y$在一行中,从光标所在字符一直复制到该行的最后一个字符
p 与 Pp 为在当前行的下一行开始粘贴,P 为当前行的上一行开始粘贴(配置 dd 使用)
J将光标所在行与下一行的数据合并成一行
c重复删除多个数据,如向下删除 10 行(10cj)
u撤销(恢复)
Ctrl + r重做上一个操作

查找和替换

操作说明
/word从光标开始向下查找名为 word 的字符
?word从光标开始向上查找名为 word 的字符
n英文键 n,重复查找前一个字符。比如 /word 再点 n 键就是继续向下查找
N英文件 N,与 n 正好相反,是反向查找的意思。如 /word 再点 N 就是向上查找的意思
:s/oldword/newword将当前行匹配到的第一个 oldword 字符替换为 newword
:s/oldword/newword/g将当前行匹配到的所有 oldword 字符替换为 newword
:%s/oldword/newword将文件中的每行匹配到的第一个 oldword 替换为 newword(全局替换每行第一个 oldword)
:%s/oldword/newword/g将文件中的每行匹配到的所有 oldword 替换为 newword(全局替换每行所有 oldword)
:n1,n2s/oldword/newwordn 是数字,将第 n1 到 n2 行之间的每一行匹配到的第一个 oldword 替换为 newword
:n1,n2s/oldword/newword/gn 是数字,将第 n1 到 n2 行之间的每一行匹配到的所有 oldword 替换为 newword
:1,$s/oldword/newword:%s/oldword/newword 的另一种写法
:1,$s/oldword/newword/g:%s/oldword/newword/g 的另一种写法
:s/oldword/newword/cc 是确认的意思,在替换之前显示提示符进行确认替换

保存与退出

操作说明
:w保存
:w!强制保存
:q退出 vim
:q!强制退出 vim
:wq保存并退出 vim
:wq!强制保存并退出 vim
ZZ若文件没有修改则不保存。若文件已修改则保存并退出 vim
:r [filename]在 vim 中将读取 filename 文件数据,也是将 filename 数据追加到光标所在行后面的意思
:n1,n2 w [filename]将文件中 n1 到 n2 行之间的数据保存到新文件 filename 中
:! CMD暂时退出 vim 到命令行中执行 CMD 命令,如 :! ls ~/home 就是在 vim 中查看 /home 信息
:set nu显示行号
:set nonu隐藏行号